//封装axios
import axios from "axios";



//创建axios实例 axios.create()
const server = axios.create({
    baseURL: '', // 不需要基础路径，直接使用完整的服务路径
    timeout: 60000 // 请求超时时间
})

// axios拦截器 可以在请求发出去的时候拦截下来
// server.interceptors.request.use(正常请求回调,错误回调)这个回调函数有一个参数 我们一般用config
// return config 相当于放行请求 如果不放行没有响应数据
server.interceptors.request.use(config => {
  // console.log("请求拦截执行了")
  // 所有走 axios封装的请求 都会到这里执行下面代码
  let token = sessionStorage.getItem("token");
  if (token) {
    config.headers["token"] = token
  }
  return config;
}, error => {
  // console.log(error)
  return Promise.reject(error)
})

server.interceptors.response.use(resp => {
  // console.log("响应器拦截了")
  // console.log(resp)
  return resp
}, error => {
  // 如果响应状态码是401，说明token过期或无效，跳转到登录页
  if (error.response && error.response.status === 401) {
    sessionStorage.removeItem('token')
    window.location.href = '/login'
  }
  return Promise.reject(error)
})

export default server //默认暴露axios实例